/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bean;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Iterator;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

/**
 *
 * @author jorge
 */
public class Verbete implements Serializable {
    
    public Verbete(){
        this.obrasRelacionadas = new ArrayList<Obra>();
        this.significados = new ArrayList<Significado>();
        this.sugestaoLeitura1 = new Obra();
        this.sugestaoLeitura2 = new Obra();
        this.sugestaoLeitura3 = new Obra();
        this.verbetesCorrelacionados = new ArrayList<Verbete>();
    }
    
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }
    
    
    public ArrayList<Significado> getSignificados() {
        return significados;
    }

    public void setSignificados(ArrayList<Significado> significados) {
        this.significados = significados;
    }

    public ArrayList<Obra> getObrasRelacionadas() {
        return obrasRelacionadas;
    }

    public void setObrasRelacionadas(ArrayList<Obra> obrasRelacionadas) {
        this.obrasRelacionadas = obrasRelacionadas;
    }

    public DataModel<Significado> getSignificadosDataModel() {
        return new ListDataModel<Significado>(significados);

    }

    public void setSignificadosDataModel(DataModel<Significado> significadosDataModel) {
        this.significadosDataModel = significadosDataModel;
    }

    public Obra getSugestaoLeitura1() {
        return sugestaoLeitura1;
    }

    public void setSugestaoLeitura1(Obra sugestaoLeitura1) {
        this.sugestaoLeitura1 = sugestaoLeitura1;
    }

    public Obra getSugestaoLeitura2() {
        return sugestaoLeitura2;
    }

    public void setSugestaoLeitura2(Obra sugestaoLeitura2) {
        this.sugestaoLeitura2 = sugestaoLeitura2;
    }

    public Obra getSugestaoLeitura3() {
        return sugestaoLeitura3;
    }

    public void setSugestaoLeitura3(Obra sugestaoLeitura3) {
        this.sugestaoLeitura3 = sugestaoLeitura3;
    }

    public ArrayList<Verbete> getVerbetesCorrelacionados() {
        return verbetesCorrelacionados;
    }

    public void setVerbetesCorrelacionados(ArrayList<Verbete> verbetesCorrelacionados) {
        this.verbetesCorrelacionados = verbetesCorrelacionados;
    }

    public String getTitulosAlternativo1() {
        return titulosAlternativo1;
    }

    public void setTitulosAlternativo1(String titulosAlternativo1) {
        this.titulosAlternativo1 = titulosAlternativo1;
    }

    public String getTitulosAlternativo2() {
        return titulosAlternativo2;
    }

    public void setTitulosAlternativo2(String titulosAlternativo2) {
        this.titulosAlternativo2 = titulosAlternativo2;
    }

    public String getTitulosAlternativo3() {
        return titulosAlternativo3;
    }

    public void setTitulosAlternativo3(String titulosAlternativo3) {
        this.titulosAlternativo3 = titulosAlternativo3;
    }

    public String getSignificadosToString() {
        Calendar cal = Calendar.getInstance();
        
        Iterator i = significados.iterator();
        significadosToString = new String();
        while(i.hasNext()){
            Significado s = (Significado)i.next();
            cal.setTime(s.getData());
            significadosToString = significadosToString + s.getSignificadoToString();
            significadosToString = significadosToString + "<h5>Como citar este verbete:</h5>" + "<br/>" + "Dicionário da Formação em Gestão social. Observatório da Formação em gestão social. "
                + s.getAutoresToStringNormal() + ", " + titulo +", " + cal.get(Calendar.YEAR)  + "<br/>";

        }
        
        return significadosToString;
    }

    public void setSignificadosToString(String significadosToString) {
        this.significadosToString = significadosToString;
    }

    public String getAutoresInstituicaoToString() {
        Iterator i = significados.iterator();
        autoresInstituicaoToString = "<br/>";
        while(i.hasNext()){
            Significado s = (Significado)i.next();
            autoresInstituicaoToString = autoresInstituicaoToString + s.getAutoresInstituicaoToString() + "<br/>" ;
            System.out.println("getAutoresInstituicaoToString : " + autoresInstituicaoToString);
        }
        
        return autoresInstituicaoToString;
    }

    public void setAutoresInstituicaoToString(String autoresInstituicaoToString) {
        this.autoresInstituicaoToString = autoresInstituicaoToString;
    }

    public String getLattesAutoresToString() {
        Iterator i = significados.iterator();
        lattesAutoresToString = new String();
        while(i.hasNext()){
            Significado s = (Significado)i.next();
            lattesAutoresToString = lattesAutoresToString + s.getLattesAutoresToString();
            return lattesAutoresToString;
        }
        
        
        
        return lattesAutoresToString;
    }
    
    public String getAutoresToString() {
        Iterator i = significados.iterator();
        autoresInstituicaoToString = "<br/>";
        StringBuilder strBuilder = new StringBuilder();
        Significado s;
        while(i.hasNext()){
            
            s = (Significado)i.next();
            strBuilder.append(s.getAutoresInstituicaoToString());
            strBuilder.append("<br/>");
            /*
            autoresInstituicaoToString = autoresInstituicaoToString + s.getAutoresInstituicaoToString() + "<br/>" ;
            System.out.println("getAutoresInstituicaoToString : " + autoresInstituicaoToString);*/
        }
        autoresInstituicaoToString = strBuilder.toString();
        
        return autoresInstituicaoToString;
    }

    public void setLattesAutoresToString(String lattesAutoresToString) {
        this.lattesAutoresToString = lattesAutoresToString;
    }

    public String getAutorToString() {
        Iterator i = significados.iterator();
        autorToString = new String();
        while(i.hasNext()){
            Significado s = (Significado)i.next();
            autorToString = autorToString + s.getAutoresToStringNormal() + "<br/>" ;
            
        }
        return autorToString;
    }

    public void setAutorToString(String autorToString) {
        this.autorToString = autorToString;
    }

    public String getInstituicaoToString() {
        Iterator i = significados.iterator();
        instituicaoToString = new String();
        while(i.hasNext()){
            Significado s = (Significado)i.next();
            instituicaoToString = instituicaoToString + s.getInstituicoesToString() + "<br/>" ;
            
        }
        return instituicaoToString;
    }

    public void setInstituicaoToString(String instituicaoToString) {
        this.instituicaoToString = instituicaoToString;
    }
    
    
    
    
    
    
    
    
    private int id;
    private String titulo;
    private ArrayList<Significado> significados;
    private DataModel<Significado> significadosDataModel;
    private ArrayList<Obra> obrasRelacionadas;
    private Obra sugestaoLeitura1;
    private Obra sugestaoLeitura2;
    private Obra sugestaoLeitura3;
    private String titulosAlternativo1;
    private String titulosAlternativo2;
    private String titulosAlternativo3;
    private String autoresInstituicaoToString;
    private String lattesAutoresToString;
    private String autorToString;
    private String instituicaoToString;
    private ArrayList<Verbete> verbetesCorrelacionados;
    private String significadosToString;
}
